This application is a Divisional Application of Ser. No. 15/265,380 filed on Sep. 14, 2016.
Today's modern lifestyle depends on digital computer systems and those systems are vulnerable to attacks that disrupt communications, alter/access data, or issue false commands/data. Disrupting communications hampers the ability of the system to react to changing conditions. If that reaction is delayed too long, the asset or facility may not be able to alter its' operation in time to prevent a service outage or damage to the equipment. Altering and accessing data allows the system to react correctly but changes the situation perceived by the controlling computer to be one which does not exist or simply supplies the intruder with sensitive information. Finally, issuing false commands tells the system to alter its state to react the wrong way, potentially resulting in damage to the system or, loss of service or loss of life. For example, one type of attack that issues false commands is the “replay” attack in which a hacker records commands sent by the network and then replays it on the network. This attack is very effective because the hacker does not have to decrypt the message; he merely observes the effect of the traffic. Replay attacks can be used over and over until the system rejects those messages.
All of these kinds of attacks can be foiled using a single defensive countermeasure—polymorphism.
Polymorphism, or “mutating”, is the ability to change (perhaps an encryption to another method of encryption or key or maybe even hardware functionality) on the fly. Polymorphic ciphers are a revolutionary idea based on the information content in a message rather than the difficulty of the key. Using advanced set theory and information theory, this encryption method does not rely exclusively on keys (K) that are large and complicated permutation/obscuring techniques. This makes the algorithm faster and requires less memory than other encryptions. The important thing is to make sure that the cipher (C) changes very quickly, at least as fast as the effective “Unicity Distance”, herein after defined as
      N    =                                        Log            ⁢                                        K                                                                        R              λ                        ⁢            Log            ⁢                                        A                                                    ⁢                                  ⁢        and        ⁢                                  ⁢                  N          Eff                    =              C        ·        N              ,  or  ,and NEff=C·N, or, that certain amount of information needed in order to decrypt an encrypted message. In his paper “Using Set Theoretic Estimation to Implement Shannon Secrecy Theory”, Dr. Carlson teaches us that polymorphic changes take place at a rate no slower than the effective “unicity distance” of the cipher and more frequently than enough information can be collected to break the code. Before the critical amount of data can be collected the cipher and key have changed, requiring the hacker to solve an entirely new problem as shown in FIG. 8:
Even if one section of the cipher is broken, the next section of the message must be broken with the same amount of effort, but no data carries over into the new problem to help the hacker. Most other ciphers are broken more easily as hardware gets faster because it is easier to check all possible keys in the cipher key space. However, if a polymorphic cipher is implemented properly, the speed of the encryption will increase as the hardware gets faster. Thus, unlike other ciphers, this type of software becomes safer as computers get faster.
A polymorphic cipher solves asset intrusion and electronic attack problems in the following ways:                (1) Incorrectly encrypted data is rejected as noise on the network. Rejecting the data quickly reduces the hacker's ability to create a denial of service (DOS) condition. Rejected packets mark the sending node as bad and all future communications are rejected without processing, reducing the load on the receiving processor. Lack of communications is also detected if regular requests for synch are transmitted.        (2) Data messages cannot be faked because the encryption or key changes too quickly. Data with the wrong encryption is rejected, limiting or eliminating the reception of bad data. Equipment works correctly because only the correct data is received and processed.        (3) Issuing bogus commands (e.g. “replay” attacks) is also prevented by polymorphic encryption. Any incorrectly encrypted commands will be rejected and are never presented to the equipment. Replay attacks are similarly thwarted since they are rejected as incorrectly encrypted at a later time when the key is invalid.        (4) Unauthorized data access is thwarted by changing the encryption too fast for spoofing and by rejecting incorrectly encrypted requests for service. In addition to rejecting bad requests the number of possible cipher/key combinations makes guessing the currently active key and cipher is nearly impossible. Even if the correct combination is found it is necessary to break all key/cipher pairs to reveal the entire message. Only a small portion of the data is compromised and it will not contain enough data to be useful to a hacker.        
In his patent, U.S. Pat. No. 1,310,719, issued in 1913, included herein by reference, Gilbert Vernam described what has later become known as the One Time Pad (OTP). In 1949, Claude Shannon's (Shannon) famous World War II research was published as “A Mathematical Theory of Communication” included by reference herein, in which he proved that any unbreakable system of encryption must have the same characteristics as the OTP: the key must be truly random, as large as the plaintext, never reused in whole or in part and it must be kept secret. However, traditional OTP keys must be:                1. Distributed by hand because they cannot be recreated deterministically by the consuming node;        2. Generated from a totally random source.                    Note: Shannon teaches that for short sequences, it is not possible to recover the function that generates the sequence. Carlson, et.al., called this the “Local Unicity Distance” (Nlocal) and showed it is related only to the characters in the submessage. Therefore, ifNLocal<|nc,eff|·|submessage|            the need for true randomness is overcome for that submessage.                        
Cipher keys and cipher selection are essential parts of a polymorphic cipher solution. CipherLoc® allows a user to include any FIPS certified 140-2 cipher, or any other certified cipher, as part of the “CipherLoc® pool” of working ciphers which CipherLoc® then uses in a random fashion to encrypt messages. CipherLoc® also must have a source of non-isomorphic (unique) keys to use with the CipherLoc® pool of working ciphers. This means that each key must be unique and capable of being distributed in a manner such that the resulting combination of unique key(s) and encryption ciphers has the same effect as though they were each a One Time Pad (OTP) without the disadvantages of a OTP such as financial drawbacks and resource requirements normally allowing only governments to actually use it. In addition, traditional OTP keys must be distributed by hand and generated from a totally random source and the present invention, hereinafter the CipherLoc® Polymorphic One Time Pad Matrix (OTP Matrix) overcomes this need. The OTP Matrix facilitates the speed of the encryption by simplifying and radically speeding up the key/cipher selection process and as computer hardware gets faster, the complexity, security and performance of the OTP Matrix will be able to be increased.
The OTP Matrix is designed to function best as a hardware solution implemented on a Field Programmable Gate Array chip, but, can also be implemented as a firmware solution or software solution (in a dual-ported memory with supporting hardware chips environment).